package dao

import (
	"CloudRestaurant/tool"
	"fmt"
)

type MysqlDao struct {
	*tool.Orm
}

func NewMysqlDao() *MysqlDao {
	return &MysqlDao{tool.DbEngine}
}

// GetMysqlVersion 获取 MySQL 版本号
func (gd *MysqlDao) GetMysqlVersion() int {
	//var version string
	var mysqlVersion MySQLVersion
	// 查询 MySQL 版本
	dbErr := gd.DB.Raw("SELECT VERSION()").Scan(&mysqlVersion).Error
	if dbErr != nil {
		fmt.Println("Error querying MySQL version:", dbErr)
		return 0
	}

	// 版本号通常是 "major.minor.patch" 格式
	var majorVersion int
	// 解析版本号
	_, parseErr := fmt.Sscanf(mysqlVersion.Version, "%d", &majorVersion)
	if parseErr != nil {
		fmt.Println("Error parsing version:", parseErr)
		return 0
	}

	fmt.Println("MySQL major version:", majorVersion)
	return majorVersion
}

type MySQLVersion struct {
	Version string `gorm:"column:VERSION()"`
}
